Inter-vehicle communication

ABSTRACT

A tool for inter-vehicle communication. The tool determines whether contextual data and journey information for a user justifies a notification. Responsive to a determination that the contextual data and the journey information justifies the notification, the tool generates the notification. The tool generates a trust score for the notification. The tool determines one or more vehicles located within a pre-defined proximity of the user. The tool transmits the notification and the trust score to the one or more vehicles located within the pre-defined proximity of the user.

BACKGROUND OF THE INVENTION

The present invention relates generally to electronic communications,and more particularly to inter-vehicle communication.

While operating a motor vehicle, there are often situations that arisethat can have an impact on nearby motor vehicles, such as a motoristmaking an abrupt emergency exit from a highway, a disabled motor vehicletraveling at a slower speed, or an accident ahead that causes increasedcongestion on a roadway. In some instances, these situations canincrease a likelihood of a motor vehicle accident, or cause othermotorists to become frustrated and agitated. Traditional ways ofcommunicating these situations to fellow motorists include activatinghazard lights on a motor vehicle, using visible hand gestures, andconversing loudly with a motorist in a nearby motor vehicle.

SUMMARY

Aspects of an embodiment of the present invention disclose a method,computer program product, and computer system for providinginter-vehicle communication. The method includes determining, by the oneor more computer processors, whether contextual data and journeyinformation for a user justifies a notification. Responsive to adetermination that the contextual data and the journey informationjustifies the notification, the method includes generating, by the oneor more computer processors, the notification. The method includesgenerating, by the one or more computer processors, a trust score forthe notification. The method includes determining, by the one or morecomputer processors, one or more vehicles located within a pre-definedproximity of the user. The method includes transmitting, by the one ormore computer processors, the notification and the trust score to theone or more vehicles located within the pre-defined proximity of theuser.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a data processing environment, generally designated100, in accordance with an embodiment of the present invention.

FIG. 2 is a flowchart depicting operational steps of a vehiclecommunication program, such as the vehicle communication program of FIG.1, generally designated 200, for providing inter-vehicle communication,in accordance with an embodiment of the present invention.

FIG. 3 is a block diagram depicting components of a data processingenvironment, such as the server of FIG. 1, generally designated 300, inaccordance with an embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that while operating amotor vehicle, there are many situations where a driver would like tocommunication a specific situation or driving condition to nearbymotorists. Embodiments of the present invention further recognize thatcommunicating personal situations and conditions with nearby motoristsis often difficult, as one-to-one communication channels betweenneighboring motor vehicles have not been widely adopted, and publiclydisplaying gestures between motorists is often not effective.Embodiments of the present invention further recognize that peer-to-peercommunication channels between drivers (e.g., voice calls, text, etc.)are similarly ineffective as these channels would require a driver topersonally know the other driver, and would further distract the driverwhile operating a motor vehicle.

Embodiments of the present invention provide the capability to enablenear field communications between a first motor vehicle and one or moreadditional motor vehicles, generate coded messages related to specificdriving situations encountered by a user in the first motor vehicle, andtransmit the coded messages to the one or more additional motor vehicleslocated within a pre-determined proximity to the first motor vehicle.Embodiments of the present invention provide the capability toautomatically determine intention information related to a codedmessage, generate a trust score for the intention information, andtransmit the intention information and the trust score along with thecoded message to one or more recipients located within a pre-determinedproximity of the user. Embodiments of the present invention provide thecapability to enable inter-vehicle communication to improve driversafety by utilizing pre-existing navigation information and data relatedto contextual situations from a first motor vehicle to generatenotifications that are delivered to one or more additional motorvehicles in proximity to the first motor vehicle. Embodiments of thepresent invention provide the capability for one or more additionalmotor vehicles to acknowledge receipt of the notification automaticallyor through driver input.

Implementation of such embodiments may take a variety of forms, andexemplary implementation details are discussed subsequently withreference to the Figures.

Referring now to various embodiments of the invention in more detail,FIG. 1 is a functional block diagram that illustrates a data processingenvironment, generally designated 100, suitable for providingintelligent inter-vehicle communication, in accordance with at least oneembodiment of the invention. The present invention will now be describedin detail with reference to the Figures. FIG. 1 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be madeby those skilled in the art without departing from the scope of theinvention as recited by the claims. FIG. 1 includes network 102, server104, and two or more client devices, such as client device 106 andclient device 108.

In one embodiment, network 102 is the Internet representing a worldwidecollection of networks and gateways that use TCP/IP protocols tocommunicate with one another. Network 102 may include wire cables,wireless communication links, fiber optic cables, routers, switchesand/or firewalls. Server 104, client device 106, and client device 108are interconnected by network 102. Network 102 can be any combination ofconnections and protocols capable of supporting communications betweenserver 104, client device 106, client device 108 and vehiclecommunication program 110. Network 102 can be, for example, atelecommunications network, a local area network (LAN), a virtual localarea network (VLAN), a wide area network (WAN), such as the Internet, ora combination of the three, and can include wired, wireless, or fiberoptic connections. Network 102 may include one or more wired and/orwireless networks that are capable of receiving and transmitting data,voice, and/or video signals, including multimedia signals that includevoice, data, and video information. In general, network 102 may be anycombination of connections and protocols that will supportcommunications between server 104, client device 106, client device 108,and vehicle communication program 110, as well as other computingdevices (not shown) within data processing environment 100. FIG. 1 isintended as an example and not as an architectural limitation for thedifferent embodiments.

In one embodiment, server 104 may be, for example, a server computersystem such as a management server, a web server, or any otherelectronic device or computing system capable of sending and receivingdata. In another embodiment, server 104 may be a data center, consistingof a collection of networks and servers providing an IT service, such asvirtual servers and applications deployed on virtual servers, to anexternal party. In another embodiment, server 104 represents a “cloud”of computers interconnected by one or more networks, where server 104 isa computing system utilizing clustered computers and components to actas a single pool of seamless resources when accessed through network102. This is a common implementation for data centers in addition tocloud computing applications. In one embodiment, server 104 includesvehicle communication program 110 for providing intelligentinter-vehicle communication service on a client device, such as clientdevice 106 and client device 108.

In one embodiment, vehicle communication program 110 operates on acentral server, such as server 104, and can be utilized by one or moreclient devices, such as client device 106 and client device 108, via anapplication download from the central server or a third-partyapplication store, and executed on the one or more client devices. Inanother embodiment, vehicle communication program 110 may be software,downloaded from a central server, such as server 104, and installed onone or more client devices, such as client device 106 and client device108. In yet another embodiment, vehicle communication program 110 may beutilized as a software service provided by a third-party cloud serviceprovider (not shown). In yet another embodiment, vehicle communicationprogram 110 may include one or more components, such as add-ons,plug-ins, and agent programs, etc. (not shown), installed on one or moreclient devices, such as client device 106 and client device 108, toenable intelligent inter-vehicle communication. In one embodiment,vehicle communication program 110 can be an add-on feature for aconventional navigation system (not shown), where the add-on featureenables a user to enable intelligent inter-vehicle communication withsurrounding motor vehicles. In one embodiment, vehicle communicationprogram 110 can be fully integrated with a navigation system. In someembodiments, vehicle communication program 110 may be partiallyintegrated or separate from a conventional navigation system. In oneembodiment, vehicle communication program 110 may be an application,downloaded from an application store or third party provider, capable ofbeing used in conjunction with an existing conventional navigationsystem on a client device, such as client device 106 and client device108, to provide an intelligent inter-vehicle communication service.

In one embodiment, vehicle communication program 110 can be utilized bya client device, such as client device 106 and client device 108, toenable intelligent inter-vehicle communication that promotes friendlydriving, reduces motor vehicle accidents, and assists duringemergencies. In one embodiment, vehicle communication program 110provides the capability to communicate encrypted coded messages betweentwo or more directionally determined motor vehicles within apre-determined proximity. In one embodiment, vehicle communicationprogram 110 can send coded empathetic requests between drivers andreceive corresponding responses. In one embodiment, vehiclecommunication program 110 can extend inter-vehicle communication toinclude transmitting warning messages at specific locations as one ormore motor vehicles approach the locations (e.g., flooded roadway,accident ahead, etc.). In one embodiment, vehicle communication program110 provides the capability to ensure privacy during inter-vehiclecommunication utilizing encryption and keeping destination details andother personal information for a requesting driver and a receivingdriver secure. In one embodiment, vehicle communication program 110provides the capability to validate a coded message (e.g., a request, awarning, a contextual situation description, a vehicle conditiondescription, etc.) using collaborative data sources and historicalrequest data to generate a trust score (i.e., a credibility score). Inone embodiment, vehicle communication program 110 determines a measureof credibility in the veracity of a coded message, and transmits themeasure of credibility along with the coded message for consideration bya recipient driver. In one embodiment, vehicle communication program 110provides the capability to automatically determine one or more motorvehicles to receive a coded message based on a proximity to a firstmotor vehicle, a travel direction for the one or more motor vehiclesrelative to the first motor vehicle, and contextual data relative to thefirst motor vehicle.

In one embodiment, vehicle communication program 110 may be configuredto access various data sources, such as a database or repository (notshown), that may include personal data, content, contextual data, orinformation a user wishes not to be processed. Personal data includespersonally identifying information or sensitive personal information aswell as user information, such as tracking or geolocation information.Processing refers to any operation, automated or unautomated, or set ofoperations such as collecting, recording, organizing, structuring,storing, adapting, altering, retrieving, consulting, using, disclosingby transmission, dissemination, or otherwise making available,combining, restricting, erasing, or destroying personal data. In oneembodiment, vehicle communication program 110 enables the authorized andsecure processing of personal data. In one embodiment, vehiclecommunication program 110 provides informed consent, with notice of thecollection of personal data, allowing the user to opt in or opt out ofprocessing personal data. Consent can take several forms. Opt-in consentcan impose on the user to take an affirmative action before personaldata is processed. Alternatively, opt-out consent can impose on the userto take an affirmative action to prevent the processing of personal databefore personal data is processed. In one embodiment, vehiclecommunication program 110 provides information regarding personal dataand the nature (e.g., type, scope, purpose, duration, etc.) of theprocessing. In one embodiment, vehicle communication program 110provides a user with copies of stored personal data. In one embodiment,vehicle communication program 110 allows the correction or completion ofincorrect or incomplete personal data. In one embodiment, vehiclecommunication program 110 allows the immediate deletion of personaldata.

In one embodiment, client device 106 and client device 108 are clientsto server 104 and may be, for example, a desktop computer, a laptopcomputer, a tablet computer, a personal digital assistant (PDA), a smartphone, a thin client, or any other electronic device or computing systemcapable of communicating with server 104 through network 102. Forexample, client device 106 may be a mobile device capable of connectingto a network, such as network 102, to access the Internet, utilizelocation services, utilize a navigation system, and utilize softwareapplications. In another example, client device 106 and client device108 may be an on-board computer within a motor vehicle. In oneembodiment, client device 106 and client device 108 may be any suitabletype of client device capable of executing one or more applications,including a smart phone, tablet, slate, or any type of device thatutilizes a mobile operating system. In one embodiment, client device 106and client device 108 may include a user interface (not shown) forproviding a user with the capability to interact with vehiclecommunication program 110. A user interface refers to the information(such as graphic, text, and sound) a program presents to a user and thecontrol sequences the user employs to control the program. There aremany types of user interfaces. In one embodiment, the user interface maybe a graphical user interface (GUI). A GUI is a type of user interfacethat allows users to interact with electronic devices, such as akeyboard and mouse, through graphical icons and visual indicators, suchas secondary notations, as opposed to text-based interfaces, typedcommand labels, or text navigation. In computers, GUIs were introducedin reaction to the perceived steep learning curve of command-lineinterfaces, which required commands to be typed on the keyboard. Theactions in GUIs are often performed through direct manipulation of thegraphics elements.

In one embodiment, client device 106 and client device 108 may be anywearable electronic devices, including wearable electronic devicesaffixed to eyeglasses and sunglasses, helmets, wristwatches, clothing,wigs, tattoos, embedded devices, and the like, capable of sending,receiving, and processing data. In one embodiment, client device 106 andclient device 108 may be a wearable computer. Wearable computers areminiature electronic devices that may be worn by the bearer under, with,or on top of clothing, as well as in or connected to glasses, hats, orother accessories. Wearable computers are especially useful forapplications that require more complex computational support than merelyhardware coded logics. In one embodiment, client device 106 and clientdevice 108 may be integrated into a vehicle of the user. For example,client device 106 and client device 108 may include a heads-up display(HUDS) integrated into a dashboard of a motor vehicle to project animage on a windshield of the motor vehicle. In general, client device106 and client device 108 each represent one or more programmableelectronic devices or combination of programmable electronic devicescapable of executing machine readable program instructions andcommunicating with other computing devices (not shown) within dataprocessing environment 100 via a network, such as network 102.

FIG. 2 is a flowchart depicting operational steps of a vehiclecommunication program, such as vehicle communication program 110,generally designated 200, for providing inter-vehicle communication, inaccordance with an embodiment of the present invention.

Vehicle communication program 110 monitors journey information for auser (202). In one embodiment, vehicle communication program 110monitors journey information for a user by accessing a client device,such as client device 106 and client device 108, where the client deviceincludes a plurality of vehicle systems, one or more vehicle sensors, aplurality of mobile device systems, and one or more mobile devicesensors. In one embodiment, journey information is data related to ajourney travelled by a user, and can include relevant data from anavigation map, global positioning system (GPS) coordinates, routedirections, an itinerary, appointment information, email, calendars,text messages, call history, direction of travel, weather conditions,etc., and any other information related to traveling in a vehicle, suchas speed, a fuel level, and on-board diagnostics. In another embodiment,vehicle communication program 110 monitors contextual information inreal-time along with the journey information. In one embodiment,contextual information is data related to speech of a user spoken insidea vehicle. In one embodiment, vehicle communication program 110 accessesan integrated microphone within a vehicle, such as client device 108,and monitors speech of the occupants inside for contextual phrases thatrelate to the journey information. In one embodiment, vehiclecommunication program 110 may monitor journey information on a mobiledevice synced to a vehicle, such as client device 106 synced to clientdevice 108. In one embodiment, vehicle communication program 110 maymonitor data related to a journey passively, such as monitoring weatherreports periodically while a vehicle is traveling on a journey. Inanother embodiment, vehicle communication program 110 may monitor datarelated to a journey actively, such as operating in a manner similarlyto a conventional satellite navigation system (i.e., GPS, pings,triangulation, etc.), continuously gathering current GPS coordinates ofa vehicle. In one embodiment, vehicle communication program 110 maymonitor data related to a journey using a combination of passive andactive monitoring, such as monitoring each change in direction along aroute, and referencing an itinerary and appointment information for theday stored within a database. In one embodiment, vehicle communicationprogram 110 may prompt a user to pre-authorize access to journeyinformation when the user enters a vehicle, such as client device 108.In one embodiment, vehicle communication program 110 may monitor variousdriver biometrics (e.g., rate of breathing, heart rate, temperature,etc.) that could indicate stress, fatigue, anxiety, etc.

Vehicle communication program 110 determines whether the journeyinformation justifies a notification (decision block 204). In oneembodiment, vehicle communication program 110 determines whether thejourney information justifies a notification by determining whether anoverlay (e.g., comparison) of current GPS coordinates for the vehicle,such as client device 108, over the journey information indicates asituational change should occur. For example, where vehiclecommunication program 110 determines that, based on the current GPScoordinates for the vehicle, a first action is to be performed, such asthe user will need to switch into a right lane soon to exit, and basedon an overlay of the journey information, at least one condition existsthat prohibits the first action from being performed, such as a secondvehicle is blocking the right lane, vehicle communication program 110determines that a situational change should occur. In another example,where vehicle communication program 110 determines that, based on thecurrent GPS coordinates for the vehicle, the user will need to switchinto a right lane soon to exit, and based on an overlay of the journeyinformation, no vehicles are blocking the right lane, vehiclecommunication program 110 determines that no situational change shouldoccur at that time. In another embodiment, vehicle communication program110 determines whether the journey information justifies a notificationby determining whether an overlay of contextual information gatheredfrom the vehicle, such as client device 108, over the journeyinformation indicates a situational change should occur. For example,where vehicle communication program 110 determines that, based on thecontextual information gathered from the vehicle, a user is speakingphrases that indicate a concern that a second vehicle tailgating, andbased on an overlay of the journey information, the second vehicle isnot triggering a proximity sensor on a bumper of the vehicle, vehiclecommunication program 110 determines that no situational change shouldoccur at this time. In another example, where vehicle communicationprogram 110 determines that, based on the contextual informationgathered from the vehicle, a user is speaking phrases that indicate aconcern that a second vehicle tailgating, and based on an overlay of thejourney information, the second vehicle is triggering a proximity sensoron a bumper of the vehicle, vehicle communication program 110 determinesthat a situational change should occur. Responsive to a determinationthat a situational change should occur, vehicle communication program110 determines that the journey information justifies a notification.Conversely, responsive to a determination that a situational changeshould not occur, vehicle communication program 110 determines that thejourney information does not justify a notification.

Responsive to a determination that the journey information does notjustify a notification (decision block 204, NO branch), vehiclecommunication program 110 continues to monitor journey information for auser (202).

Responsive to a determination that the journey information justifiesnotification (decision block 204, YES branch), vehicle communicationprogram 110 generates the notification (206). In one embodiment, vehiclecommunication program 110 generates the notification automaticallybased, at least in part, the contextual information gathered from thevehicle combined with the journey information. In another embodiment,vehicle communication program 110 generates the notification based, atleast in part, on user input from dashboard enabled buttons on, forexample, a touchscreen integrated within the dashboard. In oneembodiment, vehicle communication program 110 generates the notificationappropriate for a specific situation (i.e., context) as indicated by thecombination of the contextual information gathered from the vehicle andthe journey information. In one embodiment, vehicle communicationprogram 110 determines an appropriateness value when generating thenotification, where the appropriateness value indicates a type ofappropriate notification. For example, vehicle communication program 110may determine an appropriateness value when generating the notification,such that an appropriate notification is one that would produce afavorable situational change in a specific situation, and in thecombination of contextual information and journey information for arequestor. In another example, vehicle communication program 110determines an appropriateness value when generating the notification,such that an appropriate notification is one that would promote a safedriving environment. In one embodiment, the notifications can includerequest from a first driver to a second driver, such as “need to switchto the right lane to exit highway, please give way”, “need to make anemergency stop, please slow down”, “need to get to a hospital, pleasegive way”, “need to catch a flight, please give way”, etc. In anotherembodiment, the notifications can include contextual notifications froma first driver to a second driver, such as “disabled/elderly driver,pardon the slow responses”, “special luggage on board, pardon theinconvenience”, “vehicle in poor condition, pardon the slowness”, etc.In one embodiment, vehicle communication program 110 generatesnotifications utilizing a learned driving pattern for a requester, wherepatterns of behavior are considered to understand common behaviors ofthe requester. For example, where a requester is perpetually late due topoor planning, vehicle communication program 110 will learn thesebehaviors and adjust notifications accordingly. In one embodiment,vehicle communication program 110 generates the notification utilizingone or more user preferences gleaned from a user profile, such as apreference to only generate notifications during a pre-determined periodof time (e.g., morning commute).

Vehicle communication program 110 generates a trust score for thenotification (208). In one embodiment, vehicle communication program 110generates a trust score for the notification, where the trust score is ameasure of credibility and authenticity for the notification. In oneembodiment, vehicle communication program 110 generates the trust scorefor the notification by utilizing a blockchain system to analyzegathered journey information and contextual information, as well asother environmental or situational conditions to provide justificationfor the notification, as well as to confirm the veracity of thenotification. In one embodiment, vehicle communication program 110 mayaccess a compiled ledger of current and prior inter-vehiclecommunications (i.e., notifications and responses) around apre-determined location to ensure the notification is not fraudulent. Inone embodiment, vehicle communication program 110 generates the trustscore for the notification utilizing pattern verification of allgathered information to ensure a user is not claiming the existence of asituational condition where the situational condition does not exist.For example, where a requester is claiming the existence of an accidenton a highway as a reason to notify other motor vehicle operators to slowdown, vehicle communication program 110 may utilize pattern verificationto determine that the other motor vehicle operators have similarlyindicated the accident on the highway, and in turn, vehiclecommunication program 110 will generate a trust score for thenotification that supports the credibility of the notification.

In one embodiment, vehicle communication program 110 collects additionaldata points from external sources in a blockchain system, such asbiometric and human behavior data for a requester from a wearableelectronic device, and other environmental conditions including weatherevents and vehicle diagnostics (a current fuel level, a battery chargelevel, a general system check, etc.) from one or more dedicatedapplications. In one embodiment, external sources may include one ormore sources participating in a trusted network with vehiclecommunication program 110, such as an airline service provider, a rentalcar provider, a travel agency, and a vehicle insurance company, etc. Inone embodiment, vehicle communication program 110 generates the trustscore for the notification by analyzing a plurality of verifiable datausing blockchain technology to prove or disprove intent of a requester,and assigning weighed rating that indicate the veracity of a request. Inone embodiment, vehicle communication program 110 generates the trustscore for the notification as a weighted rating from 1-10, with a ratingof 1 being assigned to a request associated with no verifiableinformation, and a rating of 10 being assigned to a request associatedwith verifiable information exceeding a pre-determined threshold.

Vehicle communication program 110 determines one or more vehicleslocated within a pre-defined proximity of the user (210). In oneembodiment, vehicle communication program 110 determines one or morevehicles located within a pre-defined proximity of the user bydetermining a direction of travel of the user (using GPS coordinates).In one embodiment, vehicle communication program 110 utilizes acombination of contextual information and journey information todetermine spatially one or more vehicles that are located within apre-defined proximity of the user. In one embodiment, the pre-definedproximity can be defined by the combination of contextual information,journey information, GPS coordinates, and route guidance to an enddestination. For example, where a user indicates an accident at an offramp of a highway, vehicle communication program 110 may determine oneor more vehicles located up to a quarter mile behind the user that willbe traveling a similar route to an end destination are located within apre-defined proximity of the user. In another example, where a userindicates that a vehicle is tailgating, vehicle communication program110 may determine one or more vehicles located directly behind the user,that are additionally activating a rear proximity sensor of a vehicleoperated by the user, are located within a pre-defined proximity of theuser. In yet another example, where a user indicates that lane changeinto a right lane to take an exit needs to be made, vehiclecommunication program 110 may determine one or more vehicles located inthe right lane, that are additionally activating a side proximity sensorof a vehicle operated by the user, are located within a pre-definedproximity of the user. In one embodiment, vehicle communication program110 may determine a plurality of vehicles that are within a range (i.e.,activating) of one or more proximity sensors on a vehicle of a user, andcontinuously maintain a list of the plurality of vehicles, such that oneor more vehicles that leave the range of the one or more proximitysensors are removed from the list, and one or more vehicles that enterthe range of the one or more proximity sensors are added to the list.

Vehicle communication program 110 transmits the notification and thetrust score to the one or more vehicles (212). In one embodiment,vehicle communication program 110 transmits the notification and thetrust score for the notification to the one or more vehicles locatedwithin the pre-defined proximity of the user utilizing near fieldcommunication (NFC) technologies. In one embodiment, vehiclecommunication program 110 may request to pair to the one or morevehicles located within the pre-defined proximity of the user andtransmit the notification and trust score for the notificationwirelessly via a paired connection. In one embodiment, vehiclecommunication program 110 may transmit the notification and trust scorefor the notification automatically based, at least in part, onestablishing connection with the one or more vehicles within thepre-defined proximity to the user. In another embodiment, vehiclecommunication program 110 may transmit the notification and trust scorefor the notification in response to user input via one or more dashboardenabled buttons. In one embodiment, vehicle communication program 110may act as a hotspot to facilitate wireless connectivity with the one ormore vehicles within the pre-defined proximity to the user. Inalternative embodiments, vehicle communication program 110 may transmitthe notification and trust score for the notification using anytechnology known in the art capable of supporting communication betweena plurality of vehicles within a pre-defined proximity to one another.

Vehicle communication program 110 receives a response from the one ormore vehicles (214). In one embodiment, vehicle communication program110 receives a response from the one or more vehicles within thepre-defined proximity to the user, where the response from the one ormore vehicles informs the user (i.e., requester) of whether or notoperators of the one or more vehicles (i.e., recipients) intend to acton the notification.

In another embodiment, where vehicle communication program 110 isoperating in the one or more vehicles (i.e., recipients), vehiclecommunication program 110 may be configured to process notificationsautomatically based on one or more user preferences. For example, uponreceipt of a notification, vehicle communication program 110 may beconfigured to automatically respond to all incoming notifications,respond to no notifications, and respond to notifications providedresponding to the notification does not delay a current trip by morethan a pre-determined period of time, etc. In one embodiment, vehiclecommunication program 110 may be configured to provide the notificationto a driver and wait for user input via one or more dashboard enabledbuttons or voice command to confirm a response. In one embodiment,vehicle communication program 110 may prompt a driver to make a “yes/nodecision” regarding whether to take action based on the request. In yetanother embodiment, vehicle communication program 110 may be configuredto learn from prior responses to notifications, and based on prior userbehavior and response patterns relative to a type of notification,determine a suggested response to be returned to a requesting driver. Inone embodiment, vehicle communication program 110 may prompt a recipientto configure a recipient trust score within a user profile, where therecipient trust score is based, at least in part, on a certified historyof prior transactions (e.g., received requests/notifications andresponses to those received requests/notifications) and recipientbehavior history with regard to various received notifications. In oneembodiment, vehicle communication program 110 may provide a suggesteddecision to the recipient based, at least in part, on one or moreresponse preferences for a recipient, a recipient trust score, one ormore response preferences, contextual information for the recipient, andjourney information for the recipient, where the suggested decision mayinclude a type of response to be sent to a requesting driver (e.g.,“yes/no decision” response, automatic response, respond to nonotifications, etc.).

In a usage example, a user driving in a first vehicle equipped withvehicle communication program 110 speaks out loud “If only this driverwould let me through so I can make the exit”, vehicle communicationprogram 110 determines a notification is justified based, at least inpart, on a combination of contextual information and journeyinformation, generates a notification and a trust score for thenotification, such as “Please give way, need to pass to make the exit,Trust Score 8”, determines a second vehicle within a pre-definedproximity of the user, such as the second vehicle directly in front ofthe user that if moved, would allow the user to pass and make the exit,and transmits the notification and the trust score to the secondvehicle. Upon receipt of the notification and the trust score, thesecond vehicle similarly equipped with vehicle communication program110, advises an operator of the second vehicle that there would be “Noimpact on your itinerary if you take the requested action”, and providesthe operator with a prompt to accept the request. Upon receiving userinput to accept the request, vehicle communication program 110 sends aresponse to the user driving in the first vehicle that the operator inthe second vehicle intends to move to allow the pass.

In alternative embodiments, vehicle communication program 110 mayprovide an optional rewards scheme that encourages empathetic drivingbehavior, such as with accumulating points for accepting requests ortaking action after receiving notifications, where the points could beredeemable for a favor in future traffic situations, rebates at fuelingstations, discounts on car insurance, or used as a credit towardstraffic fines. In one embodiment, vehicle communication program 110 mayutilize a cloud based system managed and hosted by external sources toimplement the optional rewards scheme.

FIG. 3 is a block diagram depicting components of a data processingenvironment, such as server 104 of data processing environment 100,generally designated 300, in accordance with an embodiment of thepresent invention. It should be appreciated that FIG. 3 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in that different embodiments may beimplemented. Many modifications to the depicted environment may be made.

In the illustrative embodiment, server 104 in data processingenvironment 100 is shown in the form of a general-purpose computingdevice, such as computer system 310. The components of computer system310 may include, but are not limited to, one or more processors orprocessing unit(s) 314, memory 324 and bus 316 that couples varioussystem components including memory 324 to processing unit(s) 314.

Bus 316 represents one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port and a processor or local bus using anyof a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus andPeripheral Component Interconnect (PCI) bus.

Computer system 310 typically includes a variety of computer systemreadable media. Such media may be any available media that is accessibleby computer system 310 and it includes both volatile and non-volatilemedia, removable and non-removable media.

Memory 324 can include computer system readable media in the form ofvolatile memory, such as random access memory (RAM) 326 and/or cachememory 328. Computer system 310 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 330 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”) and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk, such as a CD-ROM, DVD-ROM or other optical media can be provided.In such instances, each can be connected to bus 316 by one or more datamedia interfaces. As will be further depicted and described below,memory 324 may include at least one computer program product having aset (e.g., at least one) of program modules that are configured to carryout the functions of embodiments of the invention.

Program/utility 332, having one or more sets of program modules 334, maybe stored in memory 324 by way of example and not limitation, as well asan operating system, one or more application programs, other programmodules and program data. Each of the operating systems, one or moreapplication programs, other program modules and program data or somecombination thereof, may include an implementation of a networkingenvironment. Program modules 334 generally carry out the functionsand/or methodologies of embodiments of the invention as describedherein. Computer system 310 may also communicate with one or moreexternal device(s) 312, such as a keyboard, a pointing device, a display322, etc. or one or more devices that enable a user to interact withcomputer system 310 and any devices (e.g., network card, modem, etc.)that enable computer system 310 to communicate with one or more othercomputing devices. Such communication can occur via Input/Output (I/O)interface(s) 320. Still yet, computer system 310 can communicate withone or more networks, such as a local area network (LAN), a general widearea network (WAN) and/or a public network (e.g., the Internet) vianetwork adapter 318. As depicted, network adapter 318 communicates withthe other components of computer system 310 via bus 316. It should beunderstood that although not shown, other hardware and softwarecomponents, such as microcode, device drivers, redundant processingunits, external disk drive arrays, RAID systems, tape drives and dataarchival storage systems may be used in conjunction with computer system310.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable) or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, a special purpose computer orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Itshould be appreciated that any particular nomenclature herein is usedmerely for convenience and thus, the invention should not be limited touse solely in any specific function identified and/or implied by suchnomenclature. Furthermore, as used herein, the singular forms of “a”,“an”, and “the” are intended to include the plural forms as well, unlessthe context clearly indicates otherwise.

1. A computer-implemented method for providing inter-vehiclecommunication, the method comprising: determining, by one or morecomputer processors, whether contextual data and journey information fora user justify a notification, wherein the contextual data includescontextual phrases, related to one or more driving situations, spoken bythe user while inside a vehicle; responsive to a determination that thecontextual data and the journey information justify the notification,generating, by the one or more computer processors, the notification;generating, by the one or more computer processors, a trust score forthe notification; determining, by the one or more computer processors,one or more vehicles located within a pre-defined proximity of the user;and transmitting, by the one or more computer processors, thenotification and the trust score to the one or more vehicles locatedwithin the pre-defined proximity of the user.
 2. The method of claim 1,further comprising: monitoring, by the one or more computer processors,a client device of the user for the contextual data and the journeyinformation, wherein the client device of the user includes a mobiledevice connected to a plurality of vehicle systems, one or more vehiclesensors, and one or more mobile device sensors.
 3. (canceled)
 4. Themethod of claim 1, wherein the journey information for the user is datarelated to a journey traveled by the user, including, but not limitedto, relevant data from a navigation map, global positioning systemcoordinates, route directions, an itinerary, appointment information, anemail, a calendar, a text message, a call history, a direction oftravel, a weather condition, a vehicle speed, a vehicle fuel level, andon-board diagnostics from the vehicle.
 5. The method of claim 1, whereindetermining whether the contextual data and the journey informationjustify the notification further comprises: determining, by the one ormore computer processors, whether an overlay of global positioningsystem coordinates for a client device of the user with the journeyinformation and the contextual data indicate that a situational changeshould occur; and wherein the situational change includes, but is notlimited to, a change in position of the client device of the userrelative to the journey information and the contextual data.
 6. Themethod of claim 5, further comprising: determining, by the one or morecomputer processors, that the situational change should occur when afirst action to be performed is prohibited by at least one situationalcondition.
 7. The method of claim 1, wherein generating the notificationfurther comprises: determining, by the one or more computer processors,an appropriateness value that indicates an appropriate notification; andgenerating, by the one or more computer processors, the appropriatenotification for a specific situation, based, at least in part, on theappropriateness value and a comparison of the contextual data and thejourney information, wherein the appropriate notification produces asituational change in the specific situation.
 8. The method of claim 1,wherein generating the trust score for the notification furthercomprises: analyzing, by the one or more computer processors, aplurality of verifiable data utilizing pattern verification to prove thenotification is not fraudulent; and assigning, by the one or morecomputer processors, a weighed rating that indicates the notification isassociated with verifiable information exceeding a pre-determinedthreshold.
 9. A computer program product for providing inter-vehiclecommunication, the computer program product comprising: one or morecomputer readable storage media and program instructions stored on theone or more computer readable storage media, the stored programinstructions comprising: program instructions to determine whethercontextual data and journey information for a user justify anotification, wherein the contextual data includes contextual phrases,related to one or more driving situations, spoken by the user whileinside a vehicle; program instructions to, responsive to a determinationthat the contextual data and the journey information justify thenotification, generate the notification; program instructions togenerate a trust score for the notification; program instructions todetermine one or more vehicles located within a pre-defined proximity ofthe user; and program instructions to transmit the notification and thetrust score to the one or more vehicles located within the pre-definedproximity of the user.
 10. The computer program product of claim 9, thestored program instructions further comprising: program instructions tomonitor a client device of the user for the contextual data and thejourney information, wherein the client device of the user includes amobile device connected to a plurality of vehicle systems, one or morevehicle sensors, and one or more mobile device sensors.
 11. (canceled)12. The computer program product of claim 9, wherein the journeyinformation for the user is data related to a journey traveled by theuser, including, but not limited to, relevant data from a navigationmap, global positioning system coordinates, route directions, anitinerary, appointment information, an email, a calendar, a textmessage, a call history, a direction of travel, a weather condition, avehicle speed, a vehicle fuel level, and on-board diagnostics from thevehicle.
 13. The computer program product of claim 9, wherein theprogram instructions to determine whether the contextual data and thejourney information justify the notification further comprise: programinstructions to determine whether an overlay of global positioningsystem coordinates for a client device of the user with the journeyinformation and the contextual data indicate that a situational changeshould occur; and wherein the situational change includes, but is notlimited to, a change in position of the client device of the userrelative to the journey information and the contextual data.
 14. Thecomputer program product of claim 13, the stored program instructionsfurther comprising: program instructions to determine that thesituational change should occur when a first action to be performed isprohibited by at least one situational condition.
 15. The computerprogram product of claim 9, wherein the program instructions to generatethe notification further comprise: program instructions to determine anappropriateness value that indicates an appropriate notification; andprogram instructions to generate the appropriate notification for aspecific situation, based, at least in part, on the appropriatenessvalue and a comparison of the contextual data and the journeyinformation, wherein the appropriate notification produces a situationalchange in the specific situation.
 16. The computer program product ofclaim 9, wherein the program instructions to generate the trust scorefor the notification further comprise: program instructions to analyze aplurality of verifiable data utilizing pattern verification to prove thenotification is not fraudulent; and program instructions to assign aweighed rating that indicates the notification is associated withverifiable information exceeding a pre-determined threshold.
 17. Acomputer system for providing inter-vehicle communication, the computersystem comprising: one or more computer processors; one or more computerreadable storage media; and program instructions stored on at least oneof the one or more computer readable storage media for execution by atleast one of the one or more computer processors, the stored programinstructions comprising: program instructions to determine whethercontextual data and journey information for a user justify anotification, wherein the contextual data includes contextual phrases,related to one or more driving situations, spoken by the user whileinside a vehicle; program instructions to, responsive to a determinationthat the contextual data and the journey information justify thenotification, generate the notification; program instructions togenerate a trust score for the notification; program instructions todetermine one or more vehicles located within a pre-defined proximity ofthe user; and program instructions to transmit the notification and thetrust score to the one or more vehicles located within the pre-definedproximity of the user.
 18. The computer system of claim 17, the storedprogram instructions further comprising: program instructions to monitora client device of the user for the contextual data and the journeyinformation, wherein the client device of the user includes a mobiledevice connected to a plurality of vehicle systems, one or more vehiclesensors, and one or more mobile device sensors.
 19. (canceled)
 20. Thecomputer system of claim 17, wherein the journey information for theuser is data related to a journey traveled by the user, including, butnot limited to, relevant data from a navigation map, global positioningsystem coordinates, route directions, an itinerary, appointmentinformation, an email, a calendar, a text message, a call history, adirection of travel, a weather condition, a vehicle speed, a vehiclefuel level, and on-board diagnostics from the vehicle.